import java.util.*;
public class Day9 {

    public static void main(String[] args) {
        int[] arr = {1,2,3,1};
        containsNearbyDuplicate(arr,3);
    }
    //存在重复元素二
    public  static boolean containsNearbyDuplicate(int[] nums, int k) {
        //1.找到重复元素和下标
        //2.判断下标的绝对值
        Map<Integer,Integer> map = new HashMap<>();
        for(int i=0;i<nums.length;i++) {
            int tmp = nums[i];
            if(map.getOrDefault(tmp,-1)==-1) {
                map.put(tmp,i);
            }else {
                int j = map.get(tmp);
                if(Math.abs(j-i)<=k) return true;
                else map.put(tmp,i);
            }

        }
        return false;
    }
    //判断是否为重排字符
    public boolean CheckPermutation(String s1, String s2) {
        int[] map1 = new int[26];
        int[] map2 = new int[26];
        for(int i=0;i<s1.length();i++) {
            map1[(int)(s1.charAt(i))-97]++;
        }
        for(int i=0;i<s2.length();i++) {
            map2[(int)(s2.charAt(i))-97]++;
        }
        for(int i=0;i<26;i++) {
            if(map1[i]!=map2[i]) return false;
        }
        return true;
    }
}
